package com.wicket.okrpbff.web.contorller;

import com.wicket.okrpbff.biz.service.AppSceneService;
import com.wicket.okrpbff.biz.service.dto.req.*;
import com.wicket.okrpbff.biz.service.dto.res.*;
import com.wicket.okrpbff.common.ro.OkrResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.wicket.okrframework.integration.FwBaseAppSceneClient;
import com.wicket.okrframework.integration.dto.QueryBizAppSceneListRespDto;
import com.wicket.okrframework.integration.dto.QueryBizAppSceneListReqDto;
import com.wicket.okrframework.integration.FwBaseInductionRecordClient;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComRespDto;
import com.wicket.okrframework.integration.dto.BatchQueryInductionRecordListComReqDto;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
import com.wicket.okrpbff.common.exception.Assert;
import com.wicket.okrframework.integration.dto.QueryBizAppSceneDetailRespDto;
import com.wicket.okrframework.integration.dto.QueryBizAppSceneDetailReqDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComRespDto;
import com.wicket.okrframework.integration.dto.QueryInductionRecordInfoDetailComReqDto;
import com.wicket.okrframework.integration.dto.AddBizAppSceneRespDto;
import com.wicket.okrframework.integration.dto.AddBizAppSceneReqDto;
import com.wicket.okrframework.integration.dto.UpdateBizAppSceneRespDto;
import com.wicket.okrframework.integration.dto.UpdateBizAppSceneReqDto;
import com.wicket.okrframework.integration.dto.QueryBizSceneListRespDto;
import com.wicket.okrframework.integration.dto.QueryBizSceneListReqDto;
import com.wicket.okrpbff.biz.service.dto.common.BffBizSceneDto;
import cn.hutool.core.bean.BeanUtil;
import com.wicket.okrframework.integration.dto.QueryBizAppSceneRelListRespDto;
import com.wicket.okrframework.integration.dto.QueryBizAppSceneRelListReqDto;
import com.wicket.okrpbff.biz.service.dto.common.BffBizAppSceneRelDto;
import com.wicket.okrframework.integration.dto.AddBizSceneRespDto;
import com.wicket.okrframework.integration.dto.AddBizSceneReqDto;
import com.wicket.okrframework.integration.dto.UpdateBizSceneRespDto;
import com.wicket.okrframework.integration.dto.UpdateBizSceneReqDto;
import com.wicket.okrframework.integration.dto.QueryNotEnabledBizSceneListRespDto;
import com.wicket.okrframework.integration.dto.QueryNotEnabledBizSceneListReqDto;
import com.wicket.okrframework.integration.dto.QueryBizAppSceneMenuListRespDto;
import com.wicket.okrframework.integration.dto.QueryBizAppSceneMenuListReqDto;
import com.wicket.okrpbff.biz.service.dto.common.BffBizAppSceneDto;
import com.wicket.okrframework.integration.dto.AddBizAppSceneRelRespDto;
import com.wicket.okrframework.integration.dto.AddBizAppSceneRelReqDto;
import com.wicket.okrframework.integration.FwBaseHostTypeClient;
import com.wicket.okrframework.integration.dto.QueryHostTypeBizScnListBorderRespDto;
import com.wicket.okrframework.integration.dto.QueryHostTypeBizScnListBorderReqDto;
import com.wicket.okrframework.integration.FwBaseDivineDataClient;
import com.wicket.okrframework.integration.dto.QueryHostTypeCollectionRemoveExistingDataListRespDto;
import com.wicket.okrframework.integration.dto.QueryHostTypeCollectionRemoveExistingDataListReqDto;
import java.util.ArrayList;
import java.util.List;
import com.wicket.okrframework.integration.dto.QueryBizSceneMenuListRespDto;
import com.wicket.okrframework.integration.dto.QueryBizSceneMenuListReqDto;
import com.wicket.okrframework.integration.dto.QueryEnablingAppListRespDto;
import com.wicket.okrframework.integration.dto.QueryEnablingAppListReqDto;
import com.wicket.okrframework.integration.dto.QueryEnablingAppSceneListRespDto;
import com.wicket.okrframework.integration.dto.QueryEnablingAppSceneListReqDto;
import com.wicket.okrframework.integration.dto.QueryEnablingAppSceneListComRespDto;
import com.wicket.okrframework.integration.dto.QueryEnablingAppSceneListComReqDto;
import com.wicket.okrframework.integration.dto.BizSceneDto;
import com.wicket.okrpbff.biz.service.dto.common.BffHostTypeBizScnDto;
import com.wicket.okrpbff.biz.service.dto.common.BffEnablingAppSceneDto;

/**
 * @author ：
 * @date ：
 *
 *
 * @version 1.0
 */
@Api(value = "AppScene", tags = {"AppScene"})
@RestController
// @RequestMapping("/poms/appScene/")
public class AppSceneController {
    @Autowired
    AppSceneService appSceneService;

    /**
   * B1-1查询业务应用列表（平台）
   * gen by moon at 8/10/2022, 3:41:13 AM
   */
    @PostMapping("/oms/platform/appScene/queryBizAppSceneList")
    @ApiOperation(value = "B1-1查询业务应用列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryBizAppSceneListRespDto> queryBizAppSceneList(@RequestBody(required=false) @Validated BffQueryBizAppSceneListReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizAppSceneList(reqDTO));
    }

    /**
   * B1-1查询被赋能场景列表（平台）
   * gen by moon at 10/25/2022, 10:01:11 AM
   */
    @PostMapping("/oms/platform/appScene/queryBizAppSceneRelEdList")
    @ApiOperation(value = "B1-1查询被赋能场景列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryBizAppSceneRelEdListRespDto> queryBizAppSceneRelEdList(@RequestBody(required=false) @Validated BffQueryBizAppSceneRelEdListReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizAppSceneRelEdList(reqDTO));
    }

    /**
   * B1-1查询宿主类型未推荐场景列表（平台）--待优化
   * gen by moon at 9/12/2022, 12:30:45 AM
   */
    @PostMapping("/oms/platform/appScene/queryBizScnHostTypeList")
    @ApiOperation(value = "B1-1查询宿主类型未推荐场景列表（平台）--待优化", response = OkrResult.class)
    public OkrResult<BffQueryBizScnHostTypeListRespDto> queryBizScnHostTypeList(@RequestBody(required=false) @Validated BffQueryBizScnHostTypeListReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizScnHostTypeList(reqDTO));
    }

    /**
   * B1-1新增应用赋能场景（平台）
   * gen by moon at 8/10/2022, 3:41:51 AM
   */
    @PostMapping("/oms/platform/appScene/addBizAppSceneRel")
    @ApiOperation(value = "B1-1新增应用赋能场景（平台）", response = OkrResult.class)
    public OkrResult<BffAddBizAppSceneRelRespDto> addBizAppSceneRel(@RequestBody(required=false) @Validated BffAddBizAppSceneRelReqDto reqDTO){
        return OkrResult.success(appSceneService.addBizAppSceneRel(reqDTO));
    }

    /**
   * B1-1查询业务应用菜单列表（边界）
   * gen by moon at 8/10/2022, 3:41:47 AM
   */
    @PostMapping("/oms/platform/appScene/queryBizAppSceneMenuList")
    @ApiOperation(value = "B1-1查询业务应用菜单列表（边界）", response = OkrResult.class)
    public OkrResult<BffQueryBizAppSceneMenuListRespDto> queryBizAppSceneMenuList(@RequestBody(required=false) @Validated BffQueryBizAppSceneMenuListReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizAppSceneMenuList(reqDTO));
    }

    /**
   * B1-1查询未赋能场景列表（平台）
   * gen by moon at 8/10/2022, 3:41:44 AM
   */
    @PostMapping("/oms/platform/appScene/queryNotEnabledBizSceneList")
    @ApiOperation(value = "B1-1查询未赋能场景列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryNotEnabledBizSceneListRespDto> queryNotEnabledBizSceneList(@RequestBody(required=false) @Validated BffQueryNotEnabledBizSceneListReqDto reqDTO){
        return OkrResult.success(appSceneService.queryNotEnabledBizSceneList(reqDTO));
    }

    /**
   * B1-1修改业务场景（平台）
   * gen by moon at 8/10/2022, 3:41:40 AM
   */
    @PostMapping("/oms/platform/appScene/updateBizScene")
    @ApiOperation(value = "B1-1修改业务场景（平台）", response = OkrResult.class)
    public OkrResult<BffUpdateBizSceneRespDto> updateBizScene(@RequestBody(required=false) @Validated BffUpdateBizSceneReqDto reqDTO){
        return OkrResult.success(appSceneService.updateBizScene(reqDTO));
    }

    /**
   * B1-1新增业务场景（平台）
   * gen by moon at 8/10/2022, 3:41:36 AM
   */
    @PostMapping("/oms/platform/appScene/addBizScene")
    @ApiOperation(value = "B1-1新增业务场景（平台）", response = OkrResult.class)
    public OkrResult<BffAddBizSceneRespDto> addBizScene(@RequestBody(required=false) @Validated BffAddBizSceneReqDto reqDTO){
        return OkrResult.success(appSceneService.addBizScene(reqDTO));
    }

    /**
   * B1-1查询应用赋能场景列表（平台）
   * gen by moon at 8/15/2022, 10:27:38 PM
   */
    @PostMapping("/oms/platform/appScene/queryBizAppSceneRelList")
    @ApiOperation(value = "B1-1查询应用赋能场景列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryBizAppSceneRelListRespDto> queryBizAppSceneRelList(@RequestBody(required=false) @Validated BffQueryBizAppSceneRelListReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizAppSceneRelList(reqDTO));
    }

    /**
   * B1-1查询业务场景列表（平台）
   * gen by moon at 8/10/2022, 3:41:28 AM
   */
    @PostMapping("/oms/platform/appScene/queryBizSceneList")
    @ApiOperation(value = "B1-1查询业务场景列表（平台）", response = OkrResult.class)
    public OkrResult<BffQueryBizSceneListRespDto> queryBizSceneList(@RequestBody(required=false) @Validated BffQueryBizSceneListReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizSceneList(reqDTO));
    }

    /**
   * B1-1修改业务应用（平台）
   * gen by moon at 8/10/2022, 3:41:24 AM
   */
    @PostMapping("/oms/platform/appScene/updateBizAppScene")
    @ApiOperation(value = "B1-1修改业务应用（平台）", response = OkrResult.class)
    public OkrResult<BffUpdateBizAppSceneRespDto> updateBizAppScene(@RequestBody(required=false) @Validated BffUpdateBizAppSceneReqDto reqDTO){
        return OkrResult.success(appSceneService.updateBizAppScene(reqDTO));
    }

    /**
   * B1-1新增业务应用（平台）
   * gen by moon at 8/10/2022, 3:41:20 AM
   */
    @PostMapping("/oms/platform/appScene/addBizAppScene")
    @ApiOperation(value = "B1-1新增业务应用（平台）", response = OkrResult.class)
    public OkrResult<BffAddBizAppSceneRespDto> addBizAppScene(@RequestBody(required=false) @Validated BffAddBizAppSceneReqDto reqDTO){
        return OkrResult.success(appSceneService.addBizAppScene(reqDTO));
    }

    /**
   * B1-1查询业务应用详情（平台）
   * gen by moon at 8/10/2022, 3:41:16 AM
   */
    @PostMapping("/oms/platform/appScene/queryBizAppSceneDetail")
    @ApiOperation(value = "B1-1查询业务应用详情（平台）", response = OkrResult.class)
    public OkrResult<BffQueryBizAppSceneDetailRespDto> queryBizAppSceneDetail(@RequestBody(required=false) @Validated BffQueryBizAppSceneDetailReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizAppSceneDetail(reqDTO));
    }
/**
   * B1-1查询业务场景菜单列表(边界)
   * gen by moon at 9/17/2022, 11:01:49 PM
   */
    @PostMapping("/oms/platform/appScene/queryBizSceneMenuListBorder")
    @ApiOperation(value = "B1-1查询业务场景菜单列表(边界)", response = OkrResult.class)
    public OkrResult<BffQueryBizSceneMenuListBorderRespDto> queryBizSceneMenuListBorder(@RequestBody(required=false) @Validated BffQueryBizSceneMenuListBorderReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizSceneMenuListBorder(reqDTO));
    }
/**
   * B1-1查询赋能的应用列表(管理)(公共)(边界)
   * gen by moon at 10/22/2022, 4:28:24 PM
   */
    @PostMapping("/oms/platform/mgt/appScene/queryEnablingAppListComBorder")
    @ApiOperation(value = "B1-1查询赋能的应用列表(管理)(公共)(边界)", response = OkrResult.class)
    public OkrResult<BffQueryEnablingAppListComBorderRespDto> queryEnablingAppListComBorder(@RequestBody(required=false) @Validated BffQueryEnablingAppListComBorderReqDto reqDTO){
        return OkrResult.success(appSceneService.queryEnablingAppListComBorder(reqDTO));
    }
/**
   * B1-1查询赋能的应用业务场景列表(管理)(公共)(边界)
   * gen by moon at 10/27/2022, 4:23:06 PM
   */
    @PostMapping("/oms/platform/mgt/appScene/queryEnablingAppSceneListComBorder")
    @ApiOperation(value = "B1-1查询赋能的应用业务场景列表(管理)(公共)(边界)", response = OkrResult.class)
    public OkrResult<BffQueryEnablingAppSceneListComBorderRespDto> queryEnablingAppSceneListComBorder(@RequestBody(required=false) @Validated BffQueryEnablingAppSceneListComBorderReqDto reqDTO){
        return OkrResult.success(appSceneService.queryEnablingAppSceneListComBorder(reqDTO));
    }
/**
   * B1-1查询宿主类型未推荐场景列表(管理)(边界)
   * gen by moon at 10/27/2022, 4:23:04 PM
   */
    @PostMapping("/oms/platform/mgt/appScene/queryBizScnHostTypeListBorder")
    @ApiOperation(value = "B1-1查询宿主类型未推荐场景列表(管理)(边界)", response = OkrResult.class)
    public OkrResult<BffQueryBizScnHostTypeListBorderRespDto> queryBizScnHostTypeListBorder(@RequestBody(required=false) @Validated BffQueryBizScnHostTypeListBorderReqDto reqDTO){
        return OkrResult.success(appSceneService.queryBizScnHostTypeListBorder(reqDTO));
    }

}

